﻿<Configuration:ConfigurationDictionary x:Class="DragonSpark.Testing.IoC.Configuration.Configuration"
	xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
	xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:System="clr-namespace:System;assembly=mscorlib" 
									   x:TypeArguments="IoC:LocatorDefinition" 
									   xmlns:Configuration="clr-namespace:DragonSpark.Configuration;assembly=DragonSpark" 
									   xmlns:IoC="clr-namespace:DragonSpark.IoC;assembly=DragonSpark" 
									   xmlns:IoCConfiguration="clr-namespace:DragonSpark.IoC.Configuration;assembly=DragonSpark" 
									   xmlns:TestObjects="clr-namespace:DragonSpark.Testing.TestObjects.IoC"
                                       xmlns:unity="clr-namespace:Microsoft.Practices.Unity;assembly=Microsoft.Practices.Unity">
	<IoC:LocatorDefinition x:Key="DefaultContainer">
		<IoCConfiguration:AssignServiceLocatorCommand />
		<IoCConfiguration:UnityContainerConfiguration>
			<IoCConfiguration:UnityType RegistrationType="{x:Type TestObjects:ISpyPolicy}" MapTo="{x:Type TestObjects:SpyPolicy}">
				<IoCConfiguration:InjectionProperty PropertyName="Enabled">
					<IoCConfiguration:InstanceValue>
						<System:Boolean>True</System:Boolean>
					</IoCConfiguration:InstanceValue>
				</IoCConfiguration:InjectionProperty>
			</IoCConfiguration:UnityType>

			<IoCConfiguration:UnityType RegistrationType="{x:Type TestObjects:ISpyTarget}" MapTo="{x:Type TestObjects:SpyTarget}">
				<IoCConfiguration:PolicyReference BuildType="{x:Type TestObjects:ISpyPolicy}" />
			</IoCConfiguration:UnityType>

			<IoCConfiguration:UnityContainerConfiguration.Extensions>
				<IoC:DragonSparkExtension />
				<IoCConfiguration:ConfigurationExtension />
			</IoCConfiguration:UnityContainerConfiguration.Extensions>

			<IoCConfiguration:UnityContainerConfiguration.PostConfigurations>
				<IoCConfiguration:AdditionalBuilderContextConfigurationCommand>
					<IoCConfiguration:AdditionalBuilderContextConfigurationCommand.Strategies>
						<IoCConfiguration:StrategyReference StrategyType="{x:Type TestObjects:SpyStrategy}" Stage="Initialization" />
					</IoCConfiguration:AdditionalBuilderContextConfigurationCommand.Strategies>
				</IoCConfiguration:AdditionalBuilderContextConfigurationCommand>
			</IoCConfiguration:UnityContainerConfiguration.PostConfigurations>
		</IoCConfiguration:UnityContainerConfiguration>
	</IoC:LocatorDefinition>
</Configuration:ConfigurationDictionary>
